#ifndef _GEOMETRY_HPP_
#define _GEOMETRY_HPP_
#include <string>
#include "def.h"

class Geometry
{
  public:
    using Area = Point;
    Geometry(const Geometry&) = delete;
    Geometry(Geometry&&) = delete;
    Geometry& operator=(const Geometry&) = delete;
    Geometry& operator=(Geometry&&) = delete;

    Geometry(const std::string& fname);
    ~Geometry();

    long GetNumNode() const {return numNode;};
    long GetNumTria() const {return numTria;}
    Point* GetCoordinate() const {return coord;}
    Tria* GetTriangle() const {return elem;}
    Area* GetArea() const {return area;}
    void CalcuArea(const Point check);
  private:
    std::string fnameGrid;
    long numNode,
        numTria;
    Point *coord;
    Tria *elem;
    Area *area;
};

#endif